The present invention generally relates to memory devices for use with computers and other processing apparatuses. More particularly, this invention relates to a flash memory-based mass storage device having a memory cache and equipped with an associated co-processor to perform compression and decompression of cached data.
Removable flash memory-based storage devices (or simply flash memory devices) are non-volatile or permanent mass storage devices that may utilize a DRAM (dynamic random access memory) or SRAM (static random access memory) based cache. As peripheral devices with high flexibility and fast read/write speeds, flash memory devices are currently replacing floppy media as the primary portable media. Optical storage devices also provide the advantage of portable memory, though they lack the possibility of updating or changing data through overwriting or adding files at high write speed.
A shortcoming of flash memory devices is their relatively low write and read performance compared to, for example, hard disk drives. Implementation of compression algorithms to increase the throughput and capacity of flash memory drives has thus far been hampered by the lack of a common standard to specify one compression method that is understood by all host systems. While this does not necessarily pose a problem with transferring data within a defined group of host systems that can all be configured to understand the same compression, it is conceivable that compatibility problems are likely to arise if the same device is to be used with random host systems. A possible solution to this dilemma is the embedding of a specific software governing the compression and decompression of data on a system partition of the flash drive. However, downloading and installation of such third party software is often viewed as cumbersome and may meet with resistance from host computer users and system administrators, especially if data are to be transferred from one system to the other.
Currently, compression is primarily used in the form of software-based compression algorithms on host systems. For example, wave files are compressed to MP3 files and video files to MPEG format to reduce storage requirements for these file formats. However, all such compression mechanisms are performed on the host computer and not on the peripheral device that stores the files.